$(document).ready(function() {
    window.fbAsyncInit = function() {
        FB.init({
            appId: '234575533340005',
            cookie: true, // enable cookies to allow the server to access the session
            xfbml: true, // parse social plugins on this page
            oauth: true, // enable OAuth 2.0
            version: 'v2.0' // use version 2.0
        });
        
        FB.Event.subscribe('auth.login', function(response) {
            //FBUserLogin(response);
            statusChangeCallback(response);
        });
        
        FB.Event.subscribe('auth.logout', function(response) {
            FBUserLogoutHandler(response);
        });

        // Now that we've initialized the JavaScript SDK, we call 
        // FB.getLoginStatus().  This function gets the state of the
        // person visiting this page and can return one of three states to
        // the callback you provide.  They can be:
        //
        // 1. Logged into your app ('connected')
        // 2. Logged into Facebook, but not your app ('not_authorized')
        // 3. Not logged into Facebook and can't tell if they are logged into
        //    your app or not.
        //
        // These three cases are handled in the callback function.
        FB.getLoginStatus(function(response) {
            statusChangeCallback(response);
        });

    };
});

(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id))
        return;
    js = d.createElement(s);
    js.id = id;
    js.src = "//connect.facebook.net/it_IT/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

// This is called with the results from from FB.getLoginStatus().
function statusChangeCallback(response) {
    // The response object is returned with a status field that lets the
    // app know the current login status of the person.
    // Full docs on the response object can be found in the documentation
    // for FB.getLoginStatus().
    if (response.status === 'connected') {
        // Logged into your app and Facebook.
        if (response.authResponse) {
            var access_token = FB.getAuthResponse()['accessToken'];
            var uid = response.authResponse.userID;
            FBConnectedHandler(access_token, uid);
        }
        else {
            FBNoAuthConnectedHandler();
        }
    } else if (response.status === 'not_authorized') {
        // The person is logged into Facebook, but not your app.
        FBNotAuthorizedHandler();
    } else {
        // The person is not logged into Facebook, so we're not sure if
        // they are logged into this app or not.
        FBNotLoggedUserHandler();
    }
}

// This function is called when someone finishes with the Login
// Button.  See the onlogin handler attached to it in the sample
// code below.
function checkLoginState() {
    FB.getLoginStatus(function(response) {
        statusChangeCallback(response);
    });
}

function FBNotAuthorizedHandler() {
    console.log('Please log into this app.');
}

function FBNotLoggedUserHandler() {
    console.log('Please log into Facebook.');
}

function FBConnectedHandler(access_token, uid) {
    console.log('Access token: ' + access_token + ' [' + uid + ']');
}    console.log('User connected but without authorizations.');

function FBNoAuthConnectedHandler() {
    console.log('User connected but without authorizations.');
}
/*
function FBUserLoginHandler(response) {
    console.log('User Login [' + response + "]");
}
*/
function FBUserLogoutHandler(response) {
    console.log('User Logout [' + response + "]");
}